As is known in the art, a computer network cluster is a collection of interconnected computers which share resources such as data storage. The individual computers, or nodes, are connected through both a physical and a software-level interconnect. The independent nodes are integrated into a single virtual computer, appearing to an end user as a single computing resource. If one node fails, the remaining nodes will handle the load previously handled by the failed node. This multiple computer environment provides many benefits to a user including high availability and increased speed of operation.
A typical network cluster configuration includes a plurality of nodes typically sharing one or more storage devices. The nodes are connected to each other by a high speed network connection such as ethernet.
A user can connect into the network cluster through any of the nodes in the network cluster. From the perspective of a user, the network cluster appears as a single computer system. Software applications run by a user are executed using the shared storage devices. An exemplary software application often executed on a computer network cluster is a database application. Typically, the database is stored on one or more shared storage devices. Inquiries or changes to the database are initiated by a user through any one of the cluster member nodes.
Successful operation of a network cluster requires coordination among the nodes with respect to usage of the shared resources as well as with respect to the communication between the nodes. Specifically, with multiple users manipulating shared data, precautions must be taken in a network cluster to insure the data is not corrupted. In addition, instances of nodes joining and exiting the network cluster must also be coordinated to avoid a loss of system integrity. Multiple safeguards have been instituted to aid in the prevention of a loss of system integrity.
For example, in an instance where a first node has lost network connectivity with a second node, but each node has retained a network connectivity with the remaining member nodes of a network cluster, a decision is made to determine which of the first and second nodes will remain a member of the network cluster and which node will be forced to exit the cluster. The selection process is often determined by a somewhat arbitrary but consistent algorithm which chooses one node over the other node. Typical criteria often used include: which node joined the cluster first, which node has a higher node id, or another arbitrary method capable of providing a decisive solution. As a result, membership of the node is resolved, resulting in a cluster network including only those nodes which have maintained network connectivity.